home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Personal Computer World 2009 February
/
PCWFEB09.iso
/
Software
/
Shareware
/
IDimager Personal 4.2.0.3
/
setup_IDimager_Personal_V4.exe
/
{app}
/
web
/
modules
/
showimage.psc
< prev
next >
Wrap
Text File
|
2008-06-27
|
16KB
|
337 lines
%code
%include storeddata.inc %/include
%include resulttable.inc %/include
function CachedProperty (AItem: TCatalogItem; AXMPProperty: String): WideString;
begin
result := ToWideString ('');
Catalog.FindXMPCachedTagValueForItem (AItem, AXMPProperty, result);
result := Trim(result);
end;
function EmbeddedFlash (AItem: TCatalogItem): WideString;
const
cWidth = 640;
cHeight = 510;
begin
ALink := '%var:PageOffset/loadimage.psc?image=' + AItem.GUID + '&original=1';
result := toWideString('');
result := result + '<OBJECT CLASSID="CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000"';
result := result + 'CODEBASE="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,22,0" ID="FVS" Width="' + IntToStr(cWidth) + '" Height="' + IntToStr(cHeight) + '">';
result := result + '<PARAM NAME="movie" VALUE="' + ALink + '">';
result := result + '<PARAM NAME="bgcolor" VALUE="#303030">';
result := result + '<PARAM NAME="loop" VALUE="false">';
result := result + '<PARAM NAME="play" VALUE="false">';
result := result + '<PARAM NAME="quality" VALUE="high">';
result := result + '<EMBED NAME="FVS" SRC="' + ALink + '" BGCOLOR="#303030" LOOP="false" PLAY="false"';
result := result + 'WIDTH="' + IntToStr(cWidth) + '" HEIGHT="' + IntToStr(cHeight) + '" TYPE="application/x-shockwave-flash" pluginspage=http://www.macromedia.com/go/getflashplayer">';
result := result + '</EMBED>';
result := result + '</OBJECT>';
end;
function EmbeddedQuickTime (AItem: TCatalogItem): WideString;
const
cWidth = 320;
cHeight = 300;
var
ALink: WideString;
begin
ALink := '%var:PageOffset/loadimage.psc?image=' + AItem.GUID + '&original=1';
result := toWideString('');
result := result + '<object class="embeddedobject" width="' + IntToStr(cWidth) + '" height="' + IntToStr(cHeight) + '" classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab">';
result := result + CrLf + '<param name="src" value="' + ALink + '">';
result := result + CrLf + '<param name="autoplay" value="false">';
result := result + CrLf + '<param name="controller" value="true">';
result := result + CrLf + '<embed src="' + ALink + '" width="' + IntToStr(cWidth) + '" height="' + IntToStr(cHeight) + '"';
result := result + CrLf + 'autoplay="false" controller="true"';
result := result + CrLf + 'pluginspage="http://www.apple.com/quicktime/download/">';
result := result + CrLf + '</embed>';
result := result + CrLf + '</object>';
end;
function EmbeddedWindowsMedia (AItem: TCatalogItem): WideString;
const
cWidth = 480;
cHeight = 360;
var
ALink: WideString;
begin
result := toWideString('');
ALink := '%var:PageOffset/loadimage.psc?image=' + AItem.GUID + '&original=1';
result := result + CrLf + '<OBJECT class="embeddedobject" ID="mediaplayer"';
result := result + CrLf + ' WIDTH ="' + IntToStr(cWidth) + '"';
result := result + CrLf + ' HEIGHT ="' + IntToStr(cHeight) + '"';
result := result + CrLf + ' CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"';
result := result + CrLf + ' CODEBASE="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"';
result := result + CrLf + ' STANDBY="Loading Microsoft Windows Media Player components..."';
result := result + CrLf + ' TYPE="application/x-oleobject" VIEWASTEXT/>';
result := result + CrLf + '<PARAM name="autostart" value="False"/>';
result := result + CrLf + '<PARAM name="url" value="' + ALink + '"/>';
result := result + CrLf + '<PARAM name="wmode" value="transparent"/>';
result := result + CrLf + '<PARAM name="uimode" value="full"/>';
result := result + CrLf + '<PARAM name="loop" value="false"/>';
result := result + CrLf + '</OBJECT>';
result := result + CrLf + '<script language="javascript" type="text/javascript">';
result := result + CrLf + '{';
result := result + CrLf + 'var videofile = "' + ALink + '";';
result := result + CrLf + 'var videolink = location.href;';
result := result + CrLf + 'var file = videolink.indexOf( "file://");';
result := result + CrLf + 'var localhost = videolink.indexOf( "file://localhost");';
result := result + CrLf + 'if ( file > -1 )';
result := result + CrLf + '{';
result := result + CrLf + 'if(localhost > -1)';
result := result + CrLf + ' videolink = videolink.substring( file + 17);';
result := result + CrLf + 'else';
result := result + CrLf + ' videolink = videolink.substring( file + 8 );';
result := result + CrLf + 'while( videolink.lastIndexOf( "%20" ) != -1 )';
result := result + CrLf + '{';
result := result + CrLf + ' videolink = videolink.replace( "%20", " " );';
result := result + CrLf + '}';
result := result + CrLf + 'var lastslash = videolink.lastIndexOf( "/");';
result := result + CrLf + 'if ( lastslash > -1 )';
result := result + CrLf + ' videolink = videolink.substring( 0, lastslash );';
result := result + CrLf + 'if ( lastslash > -1 )';
result := result + CrLf + ' videolink = videolink.substring( 0, lastslash );';
result := result + CrLf + 'videolink = videolink + "/" + videofile;';
result := result + CrLf + '}';
result := result + CrLf + 'else';
result := result + CrLf + '{';
result := result + CrLf + ' videolink = videofile;';
result := result + CrLf + '}';
result := result + CrLf + 'document.write( "<EMBED NAME =\"EmbedmediaPlayer\"");';
result := result + CrLf + 'document.write( "TYPE =\"application/x-mplayer2\" ");';
result := result + CrLf + 'document.write( "SRC =\"" + videolink + "\"");';
result := result + CrLf + 'document.write( "autostart =\"0\" ");';
result := result + CrLf + 'document.write( "ShowStatusBar =\"1\" ");';
result := result + CrLf + 'document.write( "ShowControls =\"1\" ");';
result := result + CrLf + 'document.write( "WIDTH =\"' + IntToStr(cWidth) + '\" ");';
result := result + CrLf + 'document.write( "HEIGHT =\"' + IntToStr(cHeight) + '\">");';
result := result + CrLf + 'document.write( "</EMBED>" );';
result := result + CrLf + '}';
result := result + CrLf + '</script>';
result := result + CrLf + '<noscript>';
result := result + CrLf + '<EMBED NAME ="EmbedmediaPlayer"';
result := result + CrLf + 'TYPE ="application/x-mplayer2"';
result := result + CrLf + 'SRC ="' + ALink + '"';
result := result + CrLf + 'WIDTH ="' + IntToStr(cWidth) + '"';
result := result + CrLf + 'HEIGHT ="' + IntToStr(cHeight) + '">';
result := result + CrLf + '</EMBED>';
result := result + CrLf + '</noscript>';
end;
function AddItemImage (AItem: TCatalogItem): WideString;
begin
result := toWideString('');
if WideSameText(WideExtractFileExt (AItem.FileName), '.mov') or
WideSameText(WideExtractFileExt (AItem.FileName), '.3gp')
then
result := result + EmbeddedQuickTime (AItem)
else if (
WideSameText(WideExtractFileExt (AItem.FileName), '.swf') or
WideSameText(WideExtractFileExt (AItem.FileName), '.flv')
)
then
result := result + EmbeddedFlash (AItem)
else if (
WideSameText(WideExtractFileExt (AItem.FileName), '.avi') or
WideSameText(WideExtractFileExt (AItem.FileName), '.mpg') or
WideSameText(WideExtractFileExt (AItem.FileName), '.mpeg') or
WideSameText(WideExtractFileExt (AItem.FileName), '.wmv')
)
then
result := result + EmbeddedWindowsMedia (AItem)
else
result := result + '<img src="%var:PageOffset/loadimage.psc?image=' + AItem.GUID + '&size=640" alt="' + AItem.ImageName + '" title="' + AItem.ImageName + '">';
end;
var
AItems: TCatalogItems;
AItem, ANextItem, APrevItem: TCatalogItem;
APage, ANextPage: Integer;
ALink: String;
AProps: TCatalogItemProps;
i: Integer;
begin
result := toWideString('');
if not FindStoredData (Request.Params.Values['ds'], AItems, False) then
exit;
APage := 1;
if IsValidNumberString(Request.Params.Values['page'], False) then
APage := StrToInt(Request.Params.Values['page']);
AItem := AItems.Items[APage - 1];
ANextPage := (APage div ThumbCount) + 1;
if APage mod ThumbCount = 0 then
ANextPage := ANextPage - 1;
if AItem.Index > 0 then
APrevItem := AItems.Items[AItem.Index - 1]
else
APrevItem := nil;
if AItem.Index < AItems.Count - 1 then
ANextItem := AItems.Items[AItem.Index + 1]
else
ANextItem := nil;
result := result + '<table class="imageTable" width="100%" height="100%" cellspacing="0" cellpadding="0">';
if Request.Params.Values['showtitle'] <> '0' then
begin
result := result + ' <tr>';
result := result + ' <td height="30" valign="center">';
result := result + '<table class="imageTableHeader" width="100%" cellspacing="0" cellpadding="0"><tr>';
result := result + '<td>';
result := result + '<div id="editDetails">' +
'<small>(loading...)<br/> </small>'+
'</div>' +
'';
result := result + '</td>';
result := result + '</tr></table>';
result := result + ' </td>';
result := result + ' </tr>';
end;
result := result + ' <tr>';
result := result + ' <td align="center">';
ALink := 'javascript:getHTML(''%var:PageOffset/./modules/resulttable.psc'', ''thumbs'', ''ds=' + Request.Params.Values['ds'] + '&GUID=' + AItems.GUID + '&Page=' + IntToStr(ANextPage) + '&count=' + Request.Params.Values['count'] + '&thumbsize=' + Request.Params.Values['thumbsize'] + ''')';
result := result + '<div id="imageNavBack" class="navimage">';
result := result + '<a href="' + ALink + '">' +
'<img src="%var:PageOffset/images/trans-back.png" alt="back to thumbs..." title="back to thumbs...">' +
'</a>';
result := result + '</div>';
result := result + '<div id="imageNavPrev" class="navimage">';
if APrevItem <> nil then
begin
ALink := 'javascript:getHTMLChain(' +
'[' +
' [''%var:PageOffset/./modules/showimage.psc'', ''' + AjaxContainer + ''', ''ds=' + Request.Params.Values['ds'] + '&GUID=' + AItems.GUID + '&Page=' + IntToStr(APrevItem.Index + 1) + '&count=' + Request.Params.Values['count'] + '&thumbsize=' + Request.Params.Values['thumbsize'] + '''], ' +
' [''%var:PageOffset/./modules/showimagedetails.psc'', ''editDetails'', ''ds=' + Request.Params.Values['ds'] + '&GUID=' + AItems.GUID + '&Page=' + IntToStr(APrevItem.Index + 1) + '''], ' +
' [''%var:PageOffset/./modules/imagecomments.psc'', ''comments'', ''ds=' + Request.Params.Values['ds'] + '&GUID=' + AItems.GUID + '&Page=' + IntToStr(APrevItem.Index + 1) + '''] ' +
']' +
')';
result := result + '<a href="' + ALink + '">' +
'<img src="%var:PageOffset/images/trans-prev.png" alt="previous image..." title="previous image...">' +
'</a>';
end
else
result := result + '<img src="%var:PageOffset/images/trans-blank.png">'
result := result + '</div>';
result := result + '<div id="imageNavNext" class="navimage">';
if ANextItem <> nil then
begin
ALink := 'javascript:getHTMLChain(' +
'[' +
' [''%var:PageOffset/./modules/showimage.psc'', ''' + AjaxContainer + ''', ''ds=' + Request.Params.Values['ds'] + '&GUID=' + AItems.GUID + '&Page=' + IntToStr(ANextItem.Index + 1) + '&count=' + Request.Params.Values['count'] + '&thumbsize=' + Request.Params.Values['thumbsize'] + '''], ' +
' [''%var:PageOffset/./modules/showimagedetails.psc'', ''editDetails'', ''ds=' + Request.Params.Values['ds'] + '&GUID=' + AItems.GUID + '&Page=' + IntToStr(ANextItem.Index + 1) + '''], ' +
' [''%var:PageOffset/./modules/imagecomments.psc'', ''comments'', ''ds=' + Request.Params.Values['ds'] + '&GUID=' + AItems.GUID + '&Page=' + IntToStr(ANextItem.Index + 1) + '''] ' +
']' +
')';
result := result + '<a href="' + ALink + '">' +
'<img src="%var:PageOffset/images/trans-next.png" alt="next image..." title="next image...">' +
'</a>';
end
else
result := result + '<img src="%var:PageOffset/images/trans-blank.png">'
result := result + '</div>';
result := result + ' <br/>';
result := result + '<div id="image">';
ALink := 'javascript:getHTML(''%var:PageOffset/./modules/resulttable.psc'', ''thumbs'', ''ds=' + Request.Params.Values['ds'] + '&GUID=' + AItems.GUID + '&Page=' + IntToStr(ANextPage) + '&count=' + Request.Params.Values['count'] + '&thumbsize=' + Request.Params.Values['thumbsize'] + ''')';
result := result + '<a href="' + ALink + '">';
result := result + AddItemImage (AItem);
result := result + '</a>';
result := result + '</div>';
result := result + ' </td>';
result := result + ' </tr>';
if Request.Params.Values['showlabels'] <> '0' then
begin
result := result + ' <tr>';
result := result + ' <td align="center">';
result := result + '<div id="imgLabels">';
AProps := TCatalogItemProps.Create (TCatalogItemProp, '');
Catalog.EnumPropsForItem (AItem, AProps, False, False);
Catalog.PathNameForProps (AProps, ' :: ', True);
AProps.Sort('PropName', stAscending);
for i := 0 to AProps.Count - 1 do
begin
result := result + ' | ' +
'<a href="javascript:getHTML(''%var:PageOffset/./modules/labelimages.psc'', ''thumbs'', ''GUID=' + AProps.Items[i].GUID + ''')" title="' + AProps.Items[i].Text + '">' +
'<img src="images/labeltag.png"> ' +
AProps.Items[i].PropName +
'</a>' +
'';
end;
if AProps.Count > 0 then
result := result + ' | ';
AProps.Free;
result := result + '</div>';
if IsAdmin then
begin
if AItem.MediumLoaded then
begin
if WideFileExists(AItem.FileName) then
begin
result := result + '<a href="%var:PageOffset/loadimage.psc?image=' + AItem.GUID + '&original=1&download=1" target="_new">' +
'<img src="%var:PageOffset/images/download.png" title="download original", alt="download original">' +
'</a>' +
'';
end;
end;
end;
result := result + ' </td>';
result := result + ' </tr>';
end;
result := result + ' <tr>';
result := result + ' <td align="center">';
result := result + ' <div id="comments">';
//result := result + ' (loading...)';
result := result + ' </div>';
result := result + ' </td>';
result := result + ' </tr>';
result := result + '</table>';
end;
%/code